/**
 * @type {Date}
 *
 * @properties={typeid:35,uuid:"B8C6363F-4322-4E67-A7EA-2DC2D83AF83A",variableType:93}
 */
var fFechaHasta = null;

/**
 * @type {Date}
 *
 * @properties={typeid:35,uuid:"92B23BA4-2EB3-4773-8B81-06D0882BA6DE",variableType:93}
 */
var fFechaDesde = null;


/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"428B49A0-F493-4E61-B46B-61BBCF42735F"}
 */
function buscar(event) {
	var $sql = 'SELECT provincia_id, '+ 
				'sum(neto_signo) as "gravado", sum(neto_no_gravado_signo) as "no_gravado" '+
				'FROM ctacte_cl "cc" '+
				'JOIN tab_mov_cl as "tb" ON cc.cod_mov = tb.ctacte_mov_cl_id '+
				'WHERE tb.diario_ventas = 1 AND cc.userv_id = ? AND fecha_mov BETWEEN ? AND ? '+
				'GROUP BY provincia_id;'
	var $desde = new Date (fFechaDesde.getFullYear(), fFechaDesde.getMonth(), fFechaDesde.getDate(), 0,0,0,0)
	var $hasta = new Date (fFechaHasta.getFullYear(), fFechaHasta.getMonth(), fFechaHasta.getDate(), 23,59,59,996)
	var $args = [globals.gUservID, $desde, $hasta]
	var $ds = databaseManager.getDataSetByQuery('infocom',$sql,$args,-1)
	
	var $frm 		= solutionModel.getForm('ingbrut_productos_2_imp')
	var $tipos 		= [JSColumn.INTEGER, JSColumn.NUMBER, JSColumn.NUMBER]
	var $dSource 	= $ds.createDataSource('IIBB_PRODUCTOS',$tipos)
	$frm.dataSource = $dSource
	forms[$frm.name].controller.recreateUI()
	forms[$frm.name].elements.lbl_titulo.text += ' del '+utils.dateFormat(fFechaDesde,'dd-MM-yyyy')+' al '+utils.dateFormat(fFechaHasta,'dd-MM-yyyy')
	
	var $frm 		= solutionModel.getForm('ingbrut_productos_2')
	var $tipos 		= [JSColumn.INTEGER, JSColumn.NUMBER, JSColumn.NUMBER]
	$frm.dataSource = $dSource
	forms[$frm.name].controller.recreateUI()
	forms[$frm.name].elements.lbl_titulo.text += ' del '+utils.dateFormat(fFechaDesde,'dd-MM-yyyy')+' al '+utils.dateFormat(fFechaHasta,'dd-MM-yyyy')
	
	globals.mostrarForm($frm.name)
}


/**
 * @properties={typeid:24,uuid:"0D908D5B-521F-418B-8D42-7E4AF96FFA98"}
 */
function buscar2()
{
	/*	var $sql 	= 'SELECT p.descripcion as "provincia", origen.texto as "origen", ori.importe_signo as "importe" '+
					'FROM ctacte_cl_origen "ori" '+
					'RIGHT JOIN ctacte_cl "cc" ON ori.ctacte_cl_id = cc.ctacte_cl_id '+
					'JOIN tablas_detalle "origen" ON origen.valuelist_name = \'prod_origen\' AND origen.codigo_numerico = ori.cod_origen '+
					'JOIN tab_mov_cl as "tb" ON cc.cod_mov = tb.ctacte_mov_cl_id '+
					'JOIN provincias as "p" ON p.provincia_id = cc.provincia_id	'+
					'WHERE tb.diario_ventas = 1 AND cc.userv_id = ? AND fecha_mov BETWEEN ? AND ? '+
					
					'UNION '+

					'SELECT p.descripcion as "provincia", \'Neto\' as "origen", cc.neto_signo as "importe" '+
					'FROM ctacte_cl "cc" '+
					'JOIN tab_mov_cl as "tb" ON cc.cod_mov = tb.ctacte_mov_cl_id '+
					'JOIN provincias as "p" ON p.provincia_id = cc.provincia_id '+
					'WHERE tb.diario_ventas = 1 AND cc.userv_id = ? AND fecha_mov BETWEEN ? AND ? '+

					'UNION '+

					'SELECT p.descripcion as "provincia", \'No Gravado\' as "origen", cc.neto_no_gravado_signo as "importe" '+
					'FROM ctacte_cl "cc" '+
					'JOIN tab_mov_cl as "tb" ON cc.cod_mov = tb.ctacte_mov_cl_id '+
					'JOIN provincias as "p" ON p.provincia_id = cc.provincia_id '+
					'WHERE tb.diario_ventas = 1 AND cc.userv_id = ? AND fecha_mov BETWEEN ? AND ? '
	var $desde 	= new Date (fFechaDesde.getFullYear(), fFechaDesde.getMonth(), fFechaDesde.getDate(), 0,0,0,0)
	var $hasta 	= new Date (fFechaHasta.getFullYear(), fFechaHasta.getMonth(), fFechaHasta.getDate(), 23,59,59,996)
	var $args 	= [globals.gUservID, $desde, $hasta, globals.gUservID, $desde, $hasta, globals.gUservID, $desde, $hasta]
	var $ds 	= databaseManager.getDataSetByQuery('infocom',$sql,$args,-1)
	
	if ($ds.getMaxRowIndex() == 0)
	{
		return
	}
	var $params = {
		pTitulo: 'Listado de Ventas Netas por Provincia Desde ' + utils.dateFormat(fFechaDesde,'dd-MM-yyyy') + ' Hasta ' + utils.dateFormat(fFechaHasta,'dd-MM-yyyy'),
		userv: uservs_to_uservs.razon_social
	}
	globals.metodoJasper('impresion','ventas/ingbrut_productos.jasper','ingrburt',$ds,$params)*/
	
	var $sql 	= 'SELECT cc.provincia_id, ori.cod_origen, COALESCE(sum(ori.importe_signo),0) as "importe", '+
					'sum(cc.neto_signo) as "gravado", sum(cc.neto_no_gravado_signo) as "no_gravado" '+
					'FROM ctacte_cl_origen "ori" '+
					'RIGHT JOIN ctacte_cl "cc" ON ori.ctacte_cl_id = cc.ctacte_cl_id '+
					'JOIN tab_mov_cl as "tb" ON cc.cod_mov = tb.ctacte_mov_cl_id '+ 
					'WHERE tb.diario_ventas = 1 AND cc.userv_id = ? AND fecha_mov BETWEEN ? AND ? '+
					'GROUP BY cc.provincia_id, ori.cod_origen ORDER BY cc.provincia_id, ori.cod_origen'
	var $desde 	= new Date (fFechaDesde.getFullYear(), fFechaDesde.getMonth(), fFechaDesde.getDate(), 0,0,0,0)
	var $hasta 	= new Date (fFechaHasta.getFullYear(), fFechaHasta.getMonth(), fFechaHasta.getDate(), 23,59,59,996)
	var $args 	= [globals.gUservID, $desde, $hasta]
	var $ds 	= databaseManager.getDataSetByQuery('infocom',$sql,$args,-1)
	
	if ($ds.getMaxRowIndex() == 0)
	{
		return
	}
	
	elements.tab_iibb.removeAllTabs()
	var $ds_final 	= databaseManager.createEmptyDataSet(0,['provincia','gravado','no_gravado'])
	var $tipos		= [JSColumn.INTEGER, JSColumn.NUMBER, JSColumn.NUMBER]
	var $valuelists = ['provincias',null,null]
	var $titulos	= ['Provincia', 'Gravado', 'No Gravado']
	var $cant 		= 0
	var i 			= 1
	while (i <= $ds.getMaxRowIndex())
	{
		var $prov_ant = $ds.getValue(i,1)
		$ds_final.addRow([$prov_ant,0,0])
		$cant++
		while (i <= $ds.getMaxRowIndex() && $prov_ant == $ds.getValue(i,1))
		{
			var $origen = $ds.getValue(i,2)
			if ($origen) //cod_origen
			{
				/**@type {String} */
				var $origen_desc = application.getValueListDisplayValue('prod_origen',$origen).replace('ó','o')
				var $col = $ds_final.rowColumns.indexOf($origen_desc.toLowerCase())
				if ($col == -1)
				{
					$ds_final.addColumn($origen_desc)
					$col = $ds_final.rowColumns.indexOf($origen_desc.toLowerCase())+1
					$tipos.push(JSColumn.NUMBER)
					$valuelists.push(null)
					$titulos.push($origen_desc)
				}
				$ds_final.setValue($cant,$col,$ds.getValue(i,3))
			}
			else
			{
				$ds_final.setValue($cant,2,$ds.getValue(i,4)) //gravado
				$ds_final.setValue($cant,3,$ds.getValue(i,5)) //no gravado
			}
			i++
		}
	}
	var $frm = globals.formDS($ds_final, $tipos, null, '', $titulos, 'ingbrut_productos_din', 'DS_'+utils.dateFormat(new Date(),'ddMMyyyyHHmmssSSS'), gusuario_to_rel_solucion_usuario.estilo, $valuelists)
	
	history.removeForm('ingbrut_productos_din_imp')
	solutionModel.removeForm('ingbrut_productos_din_imp')
	
	var $imp = solutionModel.cloneForm('ingbrut_productos_din_imp',solutionModel.getForm($frm))
	var $comps = $imp.getComponents()
	for (var i = 0 ; i < $comps.length ; i++)
	{
		$imp.getComponent($comps[i].name).styleClass = 'impresion'
	}
	$imp.styleClass = 'impresion'
	elements.tab_iibb.addTab($frm)
}

/**
 * @properties={typeid:24,uuid:"3C91802A-C277-4A7B-92C0-9CEB7EBCF40E"}
 */
function imprimir()
{
	forms['ingbrut_productos_din_imp'].controller.showPrintPreview()
}

/**
 * @properties={typeid:24,uuid:"2A57E7E5-19D7-44B1-9CA0-3864955F74C8"}
 */
function pdf()
{
	globals.metodoPdf('ingbrut_productos_din_imp','iibb_x_provincia',true)
}
/**
 * @properties={typeid:24,uuid:"3389402D-AA11-485B-87A5-84EBE9FDC10E"}
 */
function xls() {
	globals.archivoExcel('.xls','<TABLE CELLPADDING="1" CELLSPACING="0" BORDER="0">','<tr><td>','','</td><td>','</td></tr>','</table>','ingbrut_productos_din')
}

/**
 * @properties={typeid:24,uuid:"D50AD089-AA5D-480A-A973-66B53E4378E0"}
 */
function csv() {
	globals.archivoExcel('.csv','','','"',';','','','ingbrut_productos_din')
}